package com.water.note.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.water.note.entity.Achievement;

import java.util.List;
import java.util.Map;

/**
 * 成果记录Service接口
 */
public interface AchievementService extends IService<Achievement> {

    /**
     * 分页查询成果记录
     *
     * @param page       分页参数
     * @param userId     用户ID
     * @param categoryId 分类ID
     * @param keyword    关键字
     * @return 分页结果
     */
    Page<Achievement> page(Page<Achievement> page, Long userId, Long categoryId, String keyword);
    
    /**
     * 根据ID查询成果记录详情
     *
     * @param id 成果ID
     * @return 成果记录详情
     */
    Achievement getDetailById(Long id);
    
    /**
     * 保存成果记录及图片
     *
     * @param achievement 成果记录
     * @param imageUrls   图片URL列表
     * @return 是否成功
     */
    boolean saveWithImages(Achievement achievement, List<String> imageUrls);
    
    /**
     * 更新成果记录及图片
     *
     * @param achievement 成果记录
     * @param imageUrls   图片URL列表
     * @return 是否成功
     */
    boolean updateWithImages(Achievement achievement, List<String> imageUrls);
    
    /**
     * 获取成果记录概览数据（总数和本月新增数）
     *
     * @param userId 用户ID
     * @return 概览数据
     */
    Map<String, Object> getOverviewData(Long userId);
} 